package com.tedu.egspringbootmvc.result;

import lombok.Data;
import lombok.Getter;
import lombok.ToString;

@Getter
/*当尝试将一个对象直接作为响应体返回给前端时，Spring MVC 会尝试将这个对象转换为 JSON 格式。如果没有实现序列化所需的 getter 方法，序列化工具（如 Jackson 或 Gson）可能无法正确获取对象的属性值，从而导致序列化失败或生成的 JSON 不完整，这时前端出现406状态码。*/
/*为了使对象能够正确地被序列化为 JSON 并返回给前端，应该为每个需要序列化的属性提供 getter 方法：*/
public class JsonResult {

    private Integer code;
    private String message;
    private Object data;

    public JsonResult(){

    }

    public JsonResult(StatusCode statusCode){
        this.code = statusCode.getCode();
        this.message=statusCode.getMessage();
    }
    /*public JsonResult(Integer code,String message){
        this.code=code;
        this.message = message;
    }*/

    /*public JsonResult(Integer code,String message,Object data){
        this.code=code;
        this.message = message;
        this.data=data;
    }*/
    public JsonResult(StatusCode statusCode,Object data){
        this(statusCode);
        this.data=data;
    }

    public static JsonResult success(){
        //return new JsonResult(StatusCode.OPERATION_SUCCESS);
        return JsonResult.success(null);
    }
    public static JsonResult success(Object data){
        return new JsonResult(StatusCode.OPERATION_SUCCESS,data);

    }
}
